import router from "./router";
import store from "./store";
import { Message } from "element-ui";
import NProgress from "nprogress"; // 进度条
import "nprogress/nprogress.css"; // 进度条的css
import { getToken } from "@/utils/auth"; // 从cookie中去获取token
import getPageTitle from "@/utils/get-page-title";

NProgress.configure({ showSpinner: false }); // NProgress Configuration

const whiteList = ["/login"]; // 不会重定向的白名单

router.beforeEach(async(to, from, next) => {
    // 开始进度条
    NProgress.start();

    // 设置页面标题
    document.title = getPageTitle(to.meta.title);

    // 判断是否有token，已经登录过
    // const hasToken = getToken();
    const hasToken = true;

    if (hasToken) {
        next();
        // if (to.path === "/login") {
        //     // 如果登录了，重定向到首页
        //     next({ path: "/" });
        //     NProgress.done();
        // } else {
        //     const hasGetUserInfo = store.getters.name;
        //     if (hasGetUserInfo) {
        //         next();
        //     } else {
        //         try {
        //             // 获取用户信息
        //             await store.dispatch("user/getInfo");

        //             next();
        //         } catch (error) {
        //             // 移除token，并跳转到登录页面
        //             await store.dispatch("user/resetToken");
        //             Message.error(error || "Has Error");
        //             next(`/login?redirect=${to.path}`);
        //             NProgress.done();
        //         }
        //     }
        // }
    } else {
        //如果没有token
        if (whiteList.indexOf(to.path) !== -1) {
            // 如果是免登录拦截白名单，放行
            next();
        } else {
            // 其他页面如果没有权限，或者没登录，跳转到登录界面
            next(`/login?redirect=${to.path}`);
            NProgress.done();
        }
    }
});

router.afterEach(() => {
    // 跳转结束后，关闭进度条
    NProgress.done();
});